﻿using System;
using System.ComponentModel;
using System.Reflection;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdRxSystemServices : OdRxObject
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdRxSystemServices(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdRxSystemServices_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdRxSystemServices obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdRxSystemServices()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdRxSystemServices(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public OdRxSystemServices() : this(GlobalsPINVOKE.new_OdRxSystemServices(), MemoryManager.GetMemoryManager().GetCurrentTransaction() == null)
		{
			MemoryTransaction currentTransaction = MemoryManager.GetMemoryManager().GetCurrentTransaction();
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(new OdRxSystemServices(this.swigCPtr.Handle, true));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			this.SwigDirectorConnect();
		}

		public virtual OdStreamBuf createFile(string filename, FileAccessMode accessMode, FileShareMode shareMode, FileCreationDisposition creationDisposition)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxSystemServices_createFile__SWIG_0(this.swigCPtr, filename, (int)accessMode, (int)shareMode, (int)creationDisposition);
			OdStreamBuf result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdStreamBuf createFile(string filename, FileAccessMode accessMode, FileShareMode shareMode)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxSystemServices_createFile__SWIG_1(this.swigCPtr, filename, (int)accessMode, (int)shareMode);
			OdStreamBuf result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdStreamBuf createFile(string filename, FileAccessMode accessMode)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxSystemServices_createFile__SWIG_2(this.swigCPtr, filename, (int)accessMode);
			OdStreamBuf result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdStreamBuf createFile(string filename)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdRxSystemServices_createFile__SWIG_3(this.swigCPtr, filename);
			OdStreamBuf result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdStreamBuf)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool accessFile(string filename, int accessMode)
		{
			bool result = GlobalsPINVOKE.OdRxSystemServices_accessFile(this.swigCPtr, filename, accessMode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual long getFileCTime(string filename)
		{
			long result = GlobalsPINVOKE.OdRxSystemServices_getFileCTime(this.swigCPtr, filename);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual long getFileMTime(string filename)
		{
			long result = GlobalsPINVOKE.OdRxSystemServices_getFileMTime(this.swigCPtr, filename);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual long getFileSize(string filename)
		{
			long result = GlobalsPINVOKE.OdRxSystemServices_getFileSize(this.swigCPtr, filename);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual string createGuid()
		{
			string result = this.SwigDerivedClassHasMethod("createGuid", OdRxSystemServices.swigMethodTypes10) ? GlobalsPINVOKE.OdRxSystemServices_createGuidSwigExplicitOdRxSystemServices(this.swigCPtr) : GlobalsPINVOKE.OdRxSystemServices_createGuid(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxModule loadModule(string moduleFileName, bool silent)
		{
			OdRxModule result = (OdRxModule)Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("loadModule", OdRxSystemServices.swigMethodTypes11) ? GlobalsPINVOKE.OdRxSystemServices_loadModuleSwigExplicitOdRxSystemServices(this.swigCPtr, moduleFileName, silent) : GlobalsPINVOKE.OdRxSystemServices_loadModule(this.swigCPtr, moduleFileName, silent), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void unloadModule(OdRxModule pModuleObj)
		{
			if (this.SwigDerivedClassHasMethod("unloadModule", OdRxSystemServices.swigMethodTypes12))
			{
				GlobalsPINVOKE.OdRxSystemServices_unloadModuleSwigExplicitOdRxSystemServices(this.swigCPtr, OdRxModule.getCPtr(pModuleObj));
			}
			else
			{
				GlobalsPINVOKE.OdRxSystemServices_unloadModule(this.swigCPtr, OdRxModule.getCPtr(pModuleObj));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual string findModule(string applicationName)
		{
			string result = this.SwigDerivedClassHasMethod("findModule", OdRxSystemServices.swigMethodTypes13) ? GlobalsPINVOKE.OdRxSystemServices_findModuleSwigExplicitOdRxSystemServices(this.swigCPtr, applicationName) : GlobalsPINVOKE.OdRxSystemServices_findModule(this.swigCPtr, applicationName);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void warning(string message)
		{
			if (this.SwigDerivedClassHasMethod("warning", OdRxSystemServices.swigMethodTypes14))
			{
				GlobalsPINVOKE.OdRxSystemServices_warningSwigExplicitOdRxSystemServices__SWIG_0(this.swigCPtr, message);
			}
			else
			{
				GlobalsPINVOKE.OdRxSystemServices_warning__SWIG_0(this.swigCPtr, message);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void warning(string warnVisGroup, string message)
		{
			if (this.SwigDerivedClassHasMethod("warning", OdRxSystemServices.swigMethodTypes15))
			{
				GlobalsPINVOKE.OdRxSystemServices_warningSwigExplicitOdRxSystemServices__SWIG_1(this.swigCPtr, warnVisGroup, message);
			}
			else
			{
				GlobalsPINVOKE.OdRxSystemServices_warning__SWIG_1(this.swigCPtr, warnVisGroup, message);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public static OdRxModule loadModuleLib(string moduleFileName, bool silent)
		{
			OdRxModule result = (OdRxModule)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdRxSystemServices_loadModuleLib(moduleFileName, silent), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdResult initModelerLibrary()
		{
			OdResult result = (OdResult)GlobalsPINVOKE.OdRxSystemServices_initModelerLibrary(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdResult uninitModelerLibrary()
		{
			OdResult result = (OdResult)GlobalsPINVOKE.OdRxSystemServices_uninitModelerLibrary(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private void SwigDirectorConnect()
		{
			if (this.SwigDerivedClassHasMethod("queryX", OdRxSystemServices.swigMethodTypes0))
			{
				this.swigDelegate0 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_0(this.SwigDirectorqueryX);
			}
			if (this.SwigDerivedClassHasMethod("isA", OdRxSystemServices.swigMethodTypes1))
			{
				this.swigDelegate1 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_1(this.SwigDirectorisA);
			}
			if (this.SwigDerivedClassHasMethod("createFile", OdRxSystemServices.swigMethodTypes2))
			{
				this.swigDelegate2 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_2(this.SwigDirectorcreateFile__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("createFile", OdRxSystemServices.swigMethodTypes3))
			{
				this.swigDelegate3 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_3(this.SwigDirectorcreateFile__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("createFile", OdRxSystemServices.swigMethodTypes4))
			{
				this.swigDelegate4 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_4(this.SwigDirectorcreateFile__SWIG_2);
			}
			if (this.SwigDerivedClassHasMethod("createFile", OdRxSystemServices.swigMethodTypes5))
			{
				this.swigDelegate5 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_5(this.SwigDirectorcreateFile__SWIG_3);
			}
			if (this.SwigDerivedClassHasMethod("accessFile", OdRxSystemServices.swigMethodTypes6))
			{
				this.swigDelegate6 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_6(this.SwigDirectoraccessFile);
			}
			if (this.SwigDerivedClassHasMethod("getFileCTime", OdRxSystemServices.swigMethodTypes7))
			{
				this.swigDelegate7 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_7(this.SwigDirectorgetFileCTime);
			}
			if (this.SwigDerivedClassHasMethod("getFileMTime", OdRxSystemServices.swigMethodTypes8))
			{
				this.swigDelegate8 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_8(this.SwigDirectorgetFileMTime);
			}
			if (this.SwigDerivedClassHasMethod("getFileSize", OdRxSystemServices.swigMethodTypes9))
			{
				this.swigDelegate9 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_9(this.SwigDirectorgetFileSize);
			}
			if (this.SwigDerivedClassHasMethod("createGuid", OdRxSystemServices.swigMethodTypes10))
			{
				this.swigDelegate10 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_10(this.SwigDirectorcreateGuid);
			}
			if (this.SwigDerivedClassHasMethod("loadModule", OdRxSystemServices.swigMethodTypes11))
			{
				this.swigDelegate11 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_11(this.SwigDirectorloadModule);
			}
			if (this.SwigDerivedClassHasMethod("unloadModule", OdRxSystemServices.swigMethodTypes12))
			{
				this.swigDelegate12 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_12(this.SwigDirectorunloadModule);
			}
			if (this.SwigDerivedClassHasMethod("findModule", OdRxSystemServices.swigMethodTypes13))
			{
				this.swigDelegate13 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_13(this.SwigDirectorfindModule);
			}
			if (this.SwigDerivedClassHasMethod("warning", OdRxSystemServices.swigMethodTypes14))
			{
				this.swigDelegate14 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_14(this.SwigDirectorwarning__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("warning", OdRxSystemServices.swigMethodTypes15))
			{
				this.swigDelegate15 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_15(this.SwigDirectorwarning__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("initModelerLibrary", OdRxSystemServices.swigMethodTypes16))
			{
				this.swigDelegate16 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_16(this.SwigDirectorinitModelerLibrary);
			}
			if (this.SwigDerivedClassHasMethod("uninitModelerLibrary", OdRxSystemServices.swigMethodTypes17))
			{
				this.swigDelegate17 = new OdRxSystemServices.SwigDelegateOdRxSystemServices_17(this.SwigDirectoruninitModelerLibrary);
			}
			GlobalsPINVOKE.OdRxSystemServices_director_connect(this.swigCPtr, this.swigDelegate0, this.swigDelegate1, this.swigDelegate2, this.swigDelegate3, this.swigDelegate4, this.swigDelegate5, this.swigDelegate6, this.swigDelegate7, this.swigDelegate8, this.swigDelegate9, this.swigDelegate10, this.swigDelegate11, this.swigDelegate12, this.swigDelegate13, this.swigDelegate14, this.swigDelegate15, this.swigDelegate16, this.swigDelegate17);
		}

		private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes)
		{
			MethodInfo method = base.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, methodTypes, null);
			return method.DeclaringType.IsSubclassOf(typeof(OdRxSystemServices));
		}

		private IntPtr SwigDirectorqueryX(IntPtr pClass)
		{
			return OdRxObject.getCPtr(this.queryX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(pClass, false))).Handle;
		}

		private IntPtr SwigDirectorisA()
		{
			return OdRxClass.getCPtr(this.isA()).Handle;
		}

		private IntPtr SwigDirectorcreateFile__SWIG_0([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode, int shareMode, int creationDisposition)
		{
			return OdStreamBuf.getCPtr(this.createFile(filename, (FileAccessMode)accessMode, (FileShareMode)shareMode, (FileCreationDisposition)creationDisposition)).Handle;
		}

		private IntPtr SwigDirectorcreateFile__SWIG_1([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode, int shareMode)
		{
			return OdStreamBuf.getCPtr(this.createFile(filename, (FileAccessMode)accessMode, (FileShareMode)shareMode)).Handle;
		}

		private IntPtr SwigDirectorcreateFile__SWIG_2([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode)
		{
			return OdStreamBuf.getCPtr(this.createFile(filename, (FileAccessMode)accessMode)).Handle;
		}

		private IntPtr SwigDirectorcreateFile__SWIG_3([MarshalAs(UnmanagedType.LPWStr)] string filename)
		{
			return OdStreamBuf.getCPtr(this.createFile(filename)).Handle;
		}

		private bool SwigDirectoraccessFile([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode)
		{
			return this.accessFile(filename, accessMode);
		}

		private long SwigDirectorgetFileCTime([MarshalAs(UnmanagedType.LPWStr)] string filename)
		{
			return this.getFileCTime(filename);
		}

		private long SwigDirectorgetFileMTime([MarshalAs(UnmanagedType.LPWStr)] string filename)
		{
			return this.getFileMTime(filename);
		}

		private long SwigDirectorgetFileSize([MarshalAs(UnmanagedType.LPWStr)] string filename)
		{
			return this.getFileSize(filename);
		}

		[return: MarshalAs(UnmanagedType.LPWStr)]
		private string SwigDirectorcreateGuid()
		{
			return this.createGuid();
		}

		private IntPtr SwigDirectorloadModule([MarshalAs(UnmanagedType.LPWStr)] string moduleFileName, bool silent)
		{
			return OdRxModule.getCPtr(this.loadModule(moduleFileName, silent)).Handle;
		}

		private void SwigDirectorunloadModule(IntPtr pModuleObj)
		{
			this.unloadModule((OdRxModule)Teigha.Core.Helpers.odrxCreateObjectInternal(pModuleObj, false));
		}

		[return: MarshalAs(UnmanagedType.LPWStr)]
		private string SwigDirectorfindModule([MarshalAs(UnmanagedType.LPWStr)] string applicationName)
		{
			return this.findModule(applicationName);
		}

		private void SwigDirectorwarning__SWIG_0([MarshalAs(UnmanagedType.LPWStr)] string message)
		{
			this.warning(message);
		}

		private void SwigDirectorwarning__SWIG_1(string warnVisGroup, [MarshalAs(UnmanagedType.LPWStr)] string message)
		{
			this.warning(warnVisGroup, message);
		}

		private int SwigDirectorinitModelerLibrary()
		{
			return (int)this.initModelerLibrary();
		}

		private int SwigDirectoruninitModelerLibrary()
		{
			return (int)this.uninitModelerLibrary();
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_0 swigDelegate0;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_1 swigDelegate1;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_2 swigDelegate2;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_3 swigDelegate3;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_4 swigDelegate4;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_5 swigDelegate5;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_6 swigDelegate6;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_7 swigDelegate7;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_8 swigDelegate8;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_9 swigDelegate9;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_10 swigDelegate10;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_11 swigDelegate11;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_12 swigDelegate12;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_13 swigDelegate13;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_14 swigDelegate14;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_15 swigDelegate15;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_16 swigDelegate16;

		private OdRxSystemServices.SwigDelegateOdRxSystemServices_17 swigDelegate17;

		private static Type[] swigMethodTypes0 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes1 = new Type[0];

		private static Type[] swigMethodTypes2 = new Type[]
		{
			typeof(string),
			typeof(FileAccessMode),
			typeof(FileShareMode),
			typeof(FileCreationDisposition)
		};

		private static Type[] swigMethodTypes3 = new Type[]
		{
			typeof(string),
			typeof(FileAccessMode),
			typeof(FileShareMode)
		};

		private static Type[] swigMethodTypes4 = new Type[]
		{
			typeof(string),
			typeof(FileAccessMode)
		};

		private static Type[] swigMethodTypes5 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes6 = new Type[]
		{
			typeof(string),
			typeof(int)
		};

		private static Type[] swigMethodTypes7 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes8 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes9 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes10 = new Type[0];

		private static Type[] swigMethodTypes11 = new Type[]
		{
			typeof(string),
			typeof(bool)
		};

		private static Type[] swigMethodTypes12 = new Type[]
		{
			typeof(OdRxModule)
		};

		private static Type[] swigMethodTypes13 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes14 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes15 = new Type[]
		{
			typeof(string),
			typeof(string)
		};

		private static Type[] swigMethodTypes16 = new Type[0];

		private static Type[] swigMethodTypes17 = new Type[0];

		public delegate IntPtr SwigDelegateOdRxSystemServices_0(IntPtr pClass);

		public delegate IntPtr SwigDelegateOdRxSystemServices_1();

		public delegate IntPtr SwigDelegateOdRxSystemServices_2([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode, int shareMode, int creationDisposition);

		public delegate IntPtr SwigDelegateOdRxSystemServices_3([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode, int shareMode);

		public delegate IntPtr SwigDelegateOdRxSystemServices_4([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode);

		public delegate IntPtr SwigDelegateOdRxSystemServices_5([MarshalAs(UnmanagedType.LPWStr)] string filename);

		public delegate bool SwigDelegateOdRxSystemServices_6([MarshalAs(UnmanagedType.LPWStr)] string filename, int accessMode);

		public delegate long SwigDelegateOdRxSystemServices_7([MarshalAs(UnmanagedType.LPWStr)] string filename);

		public delegate long SwigDelegateOdRxSystemServices_8([MarshalAs(UnmanagedType.LPWStr)] string filename);

		public delegate long SwigDelegateOdRxSystemServices_9([MarshalAs(UnmanagedType.LPWStr)] string filename);

		[return: MarshalAs(UnmanagedType.LPWStr)]
		public delegate string SwigDelegateOdRxSystemServices_10();

		public delegate IntPtr SwigDelegateOdRxSystemServices_11([MarshalAs(UnmanagedType.LPWStr)] string moduleFileName, bool silent);

		public delegate void SwigDelegateOdRxSystemServices_12(IntPtr pModuleObj);

		[return: MarshalAs(UnmanagedType.LPWStr)]
		public delegate string SwigDelegateOdRxSystemServices_13([MarshalAs(UnmanagedType.LPWStr)] string applicationName);

		public delegate void SwigDelegateOdRxSystemServices_14([MarshalAs(UnmanagedType.LPWStr)] string message);

		public delegate void SwigDelegateOdRxSystemServices_15(string warnVisGroup, [MarshalAs(UnmanagedType.LPWStr)] string message);

		public delegate int SwigDelegateOdRxSystemServices_16();

		public delegate int SwigDelegateOdRxSystemServices_17();
	}
}
